//
//  FileUtil.swift
//  maozzi-rss
//
//  Created by 帽子 on 2020/7/18.
//  Copyright © 2020 帽子. All rights reserved.
//  资源文件工具类

import SwiftUI

final class FileUtil {
    static func load<T: Decodable>(_ filename: String) -> T {
        let data: Data
        guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
        else {
            fatalError("文件 \(filename) 不存在")
        }
        do {
            data = try Data(contentsOf: file)
        } catch {
            fatalError("文件 \(filename) 加载失败：\n\(error)")
        }
        do {
            let decoder = JSONDecoder()
            return try decoder.decode(T.self, from: data)
        } catch {
            fatalError("文件 \(filename) 内容解析为 \(T.self) 失败：\n\(error)")
        }
    }
    
}
